#ifndef MERGE_H_H_H
#define MERGE_H_H_H

#include "Sort.h"

class MergeSort : public Sort{
public:
	virtual void Iterative(int list[], int n);
	virtual void Recursive(int list[], int n);
	void Iterative2(int list[], int n);

	virtual ~MergeSort() {}

private:
	void Merge(int list[], int sort[], int i, int m, int n);	
	void MergePass(int list[], int sort[], int n, int length);
	void Recursive(int list[], int sort[], int left, int right);
};

#endif
